package edu.utn.tacs.grupouno.ui.server.factories;

import java.util.ArrayList;
import java.util.List;

import edu.utn.tacs.grupouno.negocio.Analisis;
import edu.utn.tacs.grupouno.negocio.Estudio;
import edu.utn.tacs.grupouno.ui.client.dto.AnalisisDetalleDTO;

public class AnalisisDetalleDTOFactory {

	public AnalisisDetalleDTO create(Analisis analisis) {
		AnalisisDetalleDTO dto = new AnalisisDetalleDTO();
		dto.setId(analisis.getId().toString());
		
		if(analisis.getMedico() != null) {
			dto.setIdMedico(analisis.getMedico().getId().toString());
			dto.setNombreMedico(analisis.getMedico().getNombre());
		}
		
		if(analisis.getPaciente() != null) {
			dto.setIdPaciente(analisis.getPaciente().getId().toString());
			dto.setNombrePaciente(analisis.getPaciente().getNombre());
		}
		
		List<String> idsEstudios = new ArrayList<String>();
		List<String> idsEstudiosCargados = new ArrayList<String>();
		List<Estudio> estudiosCargados = analisis.getEstudiosConIndicadoresCargados();
		for(Estudio estudio : analisis.getEstudios()) {
			idsEstudios.add(estudio.getId().toString());
			if(estudiosCargados.contains(estudio)) {
				idsEstudiosCargados.add(estudio.getId().toString());
			}
		}
		dto.setIdsEstudios(idsEstudios);
		dto.setIdsEstudiosCargados(idsEstudiosCargados);
		dto.setEstaListo(analisis.isListo());
		return dto;
	}
}
